Eddie Module on global Change

Install libraries

Install libraries for use to examine data using tidyverse this only has to be done one time and a # can be put in front of the code to comment it out so it does not run in the future as now.

# install.packages("tidyverse")
# install.packages("readxl")
# install.packages("janitor")
# install.packages("lubridate")
# install.packages("broom")
# install.packages("patchwork")
# install.packages("plotly")

Load libraries

Load the libraries each time you run a script or program

library(tidyverse) # loads a lot of libraries in this one to add more functionality
library(readxl) # allows you to read in excel files
library(janitor) # cleans up column names and removes empty columns if wanted
library(lubridate) # allows easy conversion of varaibles to date format
library(broom) # cleans up output for easy presentation
library(scales) # works with the x and y scales on the plots
library(patchwork) # allows you to plot several graphs on one page
library(plotly)

turn off sci notation

options(scipen=999)

Read files

Recent global temperatures

global_temp.df <- read_excel("../data/climate_change_module_dataset.xls", 
                             sheet = "Global Temperature",
                             skip=4)

Global CO2

loa_co2.df <- read_excel("../data/climate_change_module_dataset.xls", 
                             sheet = "Mauna Loa CO2",
                             skip=4)

Vostock temperatures

vostok_temp.df <- read_excel("../data/climate_change_module_dataset.xls", 
                            sheet = "Vostok Temp",
                            skip=4)

Vostock CO2

vostok_co2.df <- read_excel("../data/climate_change_module_dataset.xls", 
                            sheet = "Vostok CO2",
                            skip=4)

Plot of global temperatures

Note this uses a different approach to explore the data The graph will be interactive

global_temp.plot <- global_temp.df %>%
                          ggplot(aes(year, temp_c)) +
                          geom_line()+
                          geom_point()
# global_temp.plot
ggplotly(global_temp.plot)

Plot of global tempreatures - subset of data

# Enter the years here
min_year_global = 1976
max_year_global =  1998
global_temp.df %>%
  filter(year >= min_year_global & year <= max_year_global) %>%
  summarize(time_difference_years = max_year_global - min_year_global,
           min_temp_c = min(temp_c, na.rm=TRUE), 
            max_temp_c = max(temp_c, na.rm=TRUE))
global_temp.plot <- global_temp.df %>%
  filter(year >= min_year_global & year <= max_year_global) %>%
  ggplot(aes(year, temp_c)) +
  geom_line()+
  geom_point()
# global_temp.plot
ggplotly(global_temp.plot)

Plot of Vostok tempreatures ——

vostok_temp.plot <- vostok_temp.df %>%
  ggplot(aes(ice_age_year_bp, temp_c)) +
  geom_line()+
  geom_point() +
  scale_x_continuous(label=comma)
# vostok_temp.plot
ggplotly(vostok_temp.plot)

Plot of Vostok tempreatures - subset

# Enter the years here
min_year_vostok = 231979
max_year_vostok =  237643
# run this to see the number of years
max_year_vostok - min_year_vostok
[1] 5664
vostok_temp.df %>%
  filter(ice_age_year_bp >= min_year_vostok & ice_age_year_bp <= max_year_vostok) %>%
  summarize(time_difference = max_year_vostok - min_year_vostok,
            min_temp_c = min(temp_c, na.rm=TRUE), 
            max_temp_c = max(temp_c, na.rm=TRUE))
# plot of temp over time for sub area
vostok_temp.plot <- vostok_temp.df %>%
  filter(ice_age_year_bp >= min_year_vostok & ice_age_year_bp <= max_year_vostok) %>%
  ggplot(aes(ice_age_year_bp, temp_c)) +
  geom_line()+
  geom_point()
# vostok_temp.plot
ggplotly(vostok_temp.plot)
LS0tCnRpdGxlOiAiRWRkaWUgTW9kdWxlIEdsb2JhbCBDaGFuZ2UiCm91dHB1dDogaHRtbF9ub3RlYm9vawotLS0KCiMgRWRkaWUgTW9kdWxlIG9uIGdsb2JhbCBDaGFuZ2UKCiMjIEluc3RhbGwgbGlicmFyaWVzICAgICAKSW5zdGFsbCAgbGlicmFyaWVzIGZvciB1c2UgdG8gZXhhbWluZSBkYXRhIHVzaW5nIHRpZHl2ZXJzZSB0aGlzIG9ubHkgaGFzIHRvIGJlIGRvbmUgb25lIHRpbWUgYW5kIGEgIyBjYW4gYmUgcHV0IGluIGZyb250IG9mIHRoZSBjb2RlIHRvIGNvbW1lbnQgaXQgb3V0IHNvIGl0IGRvZXMgbm90IHJ1biBpbiB0aGUgZnV0dXJlIGFzIG5vdy4gICAKYGBge3IgaW5zdGFsbCBsaWJyYXJpZXN9CiMgaW5zdGFsbC5wYWNrYWdlcygidGlkeXZlcnNlIikKIyBpbnN0YWxsLnBhY2thZ2VzKCJyZWFkeGwiKQojIGluc3RhbGwucGFja2FnZXMoImphbml0b3IiKQojIGluc3RhbGwucGFja2FnZXMoImx1YnJpZGF0ZSIpCiMgaW5zdGFsbC5wYWNrYWdlcygiYnJvb20iKQojIGluc3RhbGwucGFja2FnZXMoInBhdGNod29yayIpCiMgaW5zdGFsbC5wYWNrYWdlcygicGxvdGx5IikKYGBgCgojIyBMb2FkIGxpYnJhcmllcyAgICAKTG9hZCB0aGUgbGlicmFyaWVzIGVhY2ggdGltZSB5b3UgcnVuIGEgc2NyaXB0IG9yIHByb2dyYW0gICAKYGBge3IgbG9hZCBsaWJyYXJpZXMsIG1lc3NhZ2U9VFJVRSwgd2FybmluZz1UUlVFfQpsaWJyYXJ5KHRpZHl2ZXJzZSkgIyBsb2FkcyBhIGxvdCBvZiBsaWJyYXJpZXMgaW4gdGhpcyBvbmUgdG8gYWRkIG1vcmUgZnVuY3Rpb25hbGl0eQpsaWJyYXJ5KHJlYWR4bCkgIyBhbGxvd3MgeW91IHRvIHJlYWQgaW4gZXhjZWwgZmlsZXMKbGlicmFyeShqYW5pdG9yKSAjIGNsZWFucyB1cCBjb2x1bW4gbmFtZXMgYW5kIHJlbW92ZXMgZW1wdHkgY29sdW1ucyBpZiB3YW50ZWQKbGlicmFyeShsdWJyaWRhdGUpICMgYWxsb3dzIGVhc3kgY29udmVyc2lvbiBvZiB2YXJhaWJsZXMgdG8gZGF0ZSBmb3JtYXQKbGlicmFyeShicm9vbSkgIyBjbGVhbnMgdXAgb3V0cHV0IGZvciBlYXN5IHByZXNlbnRhdGlvbgpsaWJyYXJ5KHNjYWxlcykgIyB3b3JrcyB3aXRoIHRoZSB4IGFuZCB5IHNjYWxlcyBvbiB0aGUgcGxvdHMKbGlicmFyeShwYXRjaHdvcmspICMgYWxsb3dzIHlvdSB0byBwbG90IHNldmVyYWwgZ3JhcGhzIG9uIG9uZSBwYWdlCmxpYnJhcnkocGxvdGx5KQpgYGAKICAgCiAgIAojIHR1cm4gb2ZmIHNjaSBub3RhdGlvbgpgYGB7cn0Kb3B0aW9ucyhzY2lwZW49OTk5KQpgYGAKCiAgIAojIyBSZWFkIGZpbGVzClJlY2VudCBnbG9iYWwgdGVtcGVyYXR1cmVzIApgYGB7cn0KZ2xvYmFsX3RlbXAuZGYgPC0gcmVhZF9leGNlbCgiLi4vZGF0YS9jbGltYXRlX2NoYW5nZV9tb2R1bGVfZGF0YXNldC54bHMiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGVldCA9ICJHbG9iYWwgVGVtcGVyYXR1cmUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNraXA9NCkKYGBgCgpHbG9iYWwgQ088c3ViPjI8L3N1Yj4KYGBge3J9CmxvYV9jbzIuZGYgPC0gcmVhZF9leGNlbCgiLi4vZGF0YS9jbGltYXRlX2NoYW5nZV9tb2R1bGVfZGF0YXNldC54bHMiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGVldCA9ICJNYXVuYSBMb2EgQ08yIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBza2lwPTQpCmBgYAoKVm9zdG9jayB0ZW1wZXJhdHVyZXMKYGBge3J9CnZvc3Rva190ZW1wLmRmIDwtIHJlYWRfZXhjZWwoIi4uL2RhdGEvY2xpbWF0ZV9jaGFuZ2VfbW9kdWxlX2RhdGFzZXQueGxzIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGVldCA9ICJWb3N0b2sgVGVtcCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBza2lwPTQpCmBgYAoKVm9zdG9jayBDTzxzdWI+Mjwvc3ViPgpgYGB7cn0Kdm9zdG9rX2NvMi5kZiA8LSByZWFkX2V4Y2VsKCIuLi9kYXRhL2NsaW1hdGVfY2hhbmdlX21vZHVsZV9kYXRhc2V0LnhscyIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hlZXQgPSAiVm9zdG9rIENPMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBza2lwPTQpCmBgYAoKIyBQbG90IG9mIGdsb2JhbCB0ZW1wZXJhdHVyZXMKTm90ZSB0aGlzIHVzZXMgYSBkaWZmZXJlbnQgYXBwcm9hY2ggdG8gZXhwbG9yZSB0aGUgZGF0YQpUaGUgZ3JhcGggd2lsbCBiZSBpbnRlcmFjdGl2ZQpgYGB7cn0KZ2xvYmFsX3RlbXAucGxvdCA8LSBnbG9iYWxfdGVtcC5kZiAlPiUKICAgICAgICAgICAgICAgICAgICAgICAgICBnZ3Bsb3QoYWVzKHllYXIsIHRlbXBfYykpICsKICAgICAgICAgICAgICAgICAgICAgICAgICBnZW9tX2xpbmUoKSsKICAgICAgICAgICAgICAgICAgICAgICAgICBnZW9tX3BvaW50KCkKIyBnbG9iYWxfdGVtcC5wbG90CmdncGxvdGx5KGdsb2JhbF90ZW1wLnBsb3QpCmBgYAoKCgojIFBsb3Qgb2YgZ2xvYmFsIHRlbXByZWF0dXJlcyAtIHN1YnNldCBvZiBkYXRhCmBgYHtyfQojIEVudGVyIHRoZSB5ZWFycyBoZXJlCm1pbl95ZWFyX2dsb2JhbCA9IDE5NzYKbWF4X3llYXJfZ2xvYmFsID0gIDE5OTgKYGBgCgoKYGBge3J9Cmdsb2JhbF90ZW1wLmRmICU+JQogIGZpbHRlcih5ZWFyID49IG1pbl95ZWFyX2dsb2JhbCAmIHllYXIgPD0gbWF4X3llYXJfZ2xvYmFsKSAlPiUKICBzdW1tYXJpemUodGltZV9kaWZmZXJlbmNlX3llYXJzID0gbWF4X3llYXJfZ2xvYmFsIC0gbWluX3llYXJfZ2xvYmFsLAogICAgICAgICAgIG1pbl90ZW1wX2MgPSBtaW4odGVtcF9jLCBuYS5ybT1UUlVFKSwgCiAgICAgICAgICAgIG1heF90ZW1wX2MgPSBtYXgodGVtcF9jLCBuYS5ybT1UUlVFKSkKYGBgCgoKYGBge3J9Cmdsb2JhbF90ZW1wLnBsb3QgPC0gZ2xvYmFsX3RlbXAuZGYgJT4lCiAgZmlsdGVyKHllYXIgPj0gbWluX3llYXJfZ2xvYmFsICYgeWVhciA8PSBtYXhfeWVhcl9nbG9iYWwpICU+JQogIGdncGxvdChhZXMoeWVhciwgdGVtcF9jKSkgKwogIGdlb21fbGluZSgpKwogIGdlb21fcG9pbnQoKQojIGdsb2JhbF90ZW1wLnBsb3QKZ2dwbG90bHkoZ2xvYmFsX3RlbXAucGxvdCkKYGBgCgojIFBsb3Qgb2YgVm9zdG9rIHRlbXByZWF0dXJlcyAtLS0tLS0KCmBgYHtyfQp2b3N0b2tfdGVtcC5wbG90IDwtIHZvc3Rva190ZW1wLmRmICU+JQogIGdncGxvdChhZXMoaWNlX2FnZV95ZWFyX2JwLCB0ZW1wX2MpKSArCiAgZ2VvbV9saW5lKCkrCiAgZ2VvbV9wb2ludCgpICsKICBzY2FsZV94X2NvbnRpbnVvdXMobGFiZWw9Y29tbWEpCiMgdm9zdG9rX3RlbXAucGxvdApnZ3Bsb3RseSh2b3N0b2tfdGVtcC5wbG90KQpgYGAKCiMgUGxvdCBvZiBWb3N0b2sgdGVtcHJlYXR1cmVzIC0gc3Vic2V0CmBgYHtyfQojIEVudGVyIHRoZSB5ZWFycyBoZXJlCm1pbl95ZWFyX3Zvc3RvayA9IDIzMTk3OQptYXhfeWVhcl92b3N0b2sgPSAgMjM3NjQzCmBgYAoKYGBge3J9CnZvc3Rva190ZW1wLmRmICU+JQogIGZpbHRlcihpY2VfYWdlX3llYXJfYnAgPj0gbWluX3llYXJfdm9zdG9rICYgaWNlX2FnZV95ZWFyX2JwIDw9IG1heF95ZWFyX3Zvc3RvaykgJT4lCiAgc3VtbWFyaXplKHRpbWVfZGlmZmVyZW5jZV95ZWFycyA9IG1heF95ZWFyX3Zvc3RvayAtIG1pbl95ZWFyX3Zvc3RvaywKICAgICAgICAgICAgbWluX3RlbXBfYyA9IG1pbih0ZW1wX2MsIG5hLnJtPVRSVUUpLCAKICAgICAgICAgICAgbWF4X3RlbXBfYyA9IG1heCh0ZW1wX2MsIG5hLnJtPVRSVUUpKQpgYGAKCgpgYGB7cn0KIyBwbG90IG9mIHRlbXAgb3ZlciB0aW1lIGZvciBzdWIgYXJlYQp2b3N0b2tfdGVtcC5wbG90IDwtIHZvc3Rva190ZW1wLmRmICU+JQogIGZpbHRlcihpY2VfYWdlX3llYXJfYnAgPj0gbWluX3llYXJfdm9zdG9rICYgaWNlX2FnZV95ZWFyX2JwIDw9IG1heF95ZWFyX3Zvc3RvaykgJT4lCiAgZ2dwbG90KGFlcyhpY2VfYWdlX3llYXJfYnAsIHRlbXBfYykpICsKICBnZW9tX2xpbmUoKSsKICBnZW9tX3BvaW50KCkKIyB2b3N0b2tfdGVtcC5wbG90CmdncGxvdGx5KHZvc3Rva190ZW1wLnBsb3QpCgpgYGAKCgogICAgICAgICAgICAgICAgICAgICAgICAKCgo=